#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
class CFraction
{
private:
     int fz, fm;
public:
     CFraction(int fz_val, int fm_val):fz(fz_val),fm(fm_val){ }
     CFraction add(const CFraction &r);
     CFraction sub(const CFraction &r);
     CFraction mul(const CFraction &r);
     CFraction div(const CFraction &r);
     int getGCD();
     void print();
     CFraction(){ }
};
int CFraction::getGCD()
{
    int a=fz;
    int b=fm;
    if(a<0)
        a=-a;
    if(b<0)
        b=-b;
    //相减会出现负数
    if(b>a)
        swap(a,b);
    if(b==0)
        return 0;
    int left=a%b;
    while(left!=0)
    {
        a=b;
        b=left;
        left=a%b;
    }
    return b;
}

void CFraction::print()
{
    if(fm<0)
    {
        fz=-fz;
        fm=-fm;
    }
    if(fz==0)
    {
        cout<<0<<endl;
        return;
    }
    if(fz/fm==1)
        cout<<1<<endl;
    else if(fz/fm==-1)
        cout<<-1<<endl;
    else
        cout<<fz<<"/"<<fm<<endl;
}

CFraction CFraction::add(const CFraction &r)
{
    CFraction tmp;
    tmp.fz=fz*r.fm+r.fz*fm;
    tmp.fm=fm*r.fm;
    int maxLeft=tmp.getGCD();
    if(maxLeft==0)
    {
        tmp.fz=0;
    }
    else
    {
        tmp.fz=tmp.fz/maxLeft;
        tmp.fm=tmp.fm/maxLeft;
    }
    return tmp;
}

CFraction CFraction::sub(const CFraction &r)
{
    CFraction tmp;
    tmp.fz=fz*r.fm-r.fz*fm;
    tmp.fm=fm*r.fm;
    int maxLeft=tmp.getGCD();
    if(maxLeft==0)
    {
        tmp.fz=0;
    }
    else
    {
        tmp.fz=tmp.fz/maxLeft;
        tmp.fm=tmp.fm/maxLeft;
    }
    return tmp;
}

CFraction CFraction::mul(const CFraction &r)
{
    CFraction tmp;
    tmp.fz=fz*r.fz;
    tmp.fm=fm*r.fm;
    int maxLeft=tmp.getGCD();
    if(maxLeft==0)
    {
        tmp.fz=0;
    }
    else
    {
        tmp.fz=tmp.fz/maxLeft;
        tmp.fm=tmp.fm/maxLeft;
    }
    return tmp;
}

CFraction CFraction::div(const CFraction &r)
{
    CFraction tmp;
    tmp.fz=fz*r.fm;
    tmp.fm=fm*r.fz;
    int maxLeft=tmp.getGCD();
    if(maxLeft==0)
    {
        tmp.fz=0;
    }
    else
    {
        tmp.fz=tmp.fz/maxLeft;
        tmp.fm=tmp.fm/maxLeft;
    }
    return tmp;
}

int main()
{
    int time;
    cin>>time;
    while(time--)
    {
        int a,b,c,d;
        //我这里为了把/吃掉，用的是scanf，事实上cin应该也可以直接跳掉/
        scanf("%d/%d",&a,&b);
        scanf("%d/%d",&c,&d);
        CFraction Fen1(a,b);
        CFraction Fen2(c,d);
        CFraction ans;
        ans=Fen1.add(Fen2);
        ans.print();
        ans=Fen1.sub(Fen2);
        ans.print();
        ans=Fen1.mul(Fen2);
        ans.print();
        ans=Fen1.div(Fen2);
        ans.print();
        cout<<endl;//！！！这是输出格式！最后所有print之后，要有一个回车
    }
}